package com.heima.article.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.heima.model.article.dtos.ArticleCommentDto;
import com.heima.model.article.dtos.ArticleDto;
import com.heima.model.article.dtos.ArticleHomeDto;
import com.heima.model.article.pojos.ApArticle;
import com.heima.model.behavior.dtos.ArticleInfoDto;
import com.heima.model.comment.dtos.CommentConfigDto;
import com.heima.model.common.dtos.PageResponseResult;
import com.heima.model.common.dtos.ResponseResult;
import com.heima.model.message.ArticleVisitStreamMess;
import com.heima.model.wemedia.dtos.StatisticsDto;
import com.heima.model.wemedia.dtos.WmStatisticDto;
import org.springframework.web.bind.annotation.RequestBody;

public interface ApArticleService extends IService<ApArticle> {


    /**
     * 加载文章列表
     *
     * @param dto
     * @param type 1 加载更多 2.加载最新
     * @return
     */
    public ResponseResult load(ArticleHomeDto dto, Short type);


    /**
     * 保存app端相关文章
     * @param dto
     * @return
     */
    public ResponseResult saveArticle(ArticleDto dto);


    /**
     * 加载文章详情 数据回显
     * @param dto
     * @return
     */
    public ResponseResult loadArticleBehavior(ArticleInfoDto dto);

    /**
     * 加载文章列表
     * @param dto
     * @param type 1 加载首页 2 加载更多
     * @param firstPage true 首页  false 不是首页
     * @return
     */
    public ResponseResult load2(ArticleHomeDto dto, Short type ,boolean firstPage);

    /**
     * 实时更新文章的分值 同时更新缓存中的热点文章数据
     * @param mess
     */
    public void updateScore(ArticleVisitStreamMess mess);

    /**
     * 查询文章是否可以评论
     * @param articleId
     * @return
     */
    public ResponseResult findArticleConfigByArticleId(Long articleId);

    /**
     * 自媒体端查询文章表的评论相关信息
     * @param dto
     * @return
     */
    public PageResponseResult findNewsComments(ArticleCommentDto dto);

    /**
     * 修改app文章的config配置
     * @param dto
     * @return
     */
    ResponseResult updateCommentStatus(CommentConfigDto dto);

    /**
     * 获取图文数据
     * @param dto
     * @return
     */
    ResponseResult queryLikesAndCollections(WmStatisticDto dto);

    /**
     * 分页查询图文统计
     * @param dto
     * @return
     */
    PageResponseResult newPage(StatisticsDto dto);
}
